package com.rc.web.mapper;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.update.UpdateChain;
import com.rc.pojo.po.Address;

import static com.rc.pojo.po.table.AddressTableDef.ADDRESS;

/**
 * 用户地址表 映射层。
 * 提供用户地址相关的数据库操作接口
 */
public interface AddressMapper extends BaseMapper<Address> {

    /**
     * 更新非默认地址
     * 将除指定ID外的所有默认地址设置为非默认
     * @param id 当前默认地址ID
     */
    default void updateNoDefault(long id){
        UpdateChain.of(this)
                .set(ADDRESS.IS_DEFAULT, 0) // 将is_default字段设置为0
                .where(ADDRESS.ID.ne(id)) // 排除当前地址
                .and(ADDRESS.IS_DEFAULT.eq(1)) // 只更新默认地址
                .update();
    }
}
